package com.jiang.daily.Q3396;

/**
 * @author Jiang
 * @version 1.0
 * @date 2025/04/08 11:15
 */
class Solution {
    // 哈希
//    public int minimumOperations(int[] nums) {
//        int[] arr = new int[101];
//        int cnt = 0;
//        for (int num : nums) {
//            if (arr[num] > 0) {
//                cnt++;
//            }
//            arr[num]++;
//        }
//
//        if (cnt == 0) return 0;
//
//        int op = 0;
//        for (int i = 0; i < nums.length; i++)  {
//            if (--arr[nums[i]] > 0) {
//                cnt--;
//            }
//
//            if ((i + 1) % 3 == 0) {
//                op++;
//                if (cnt == 0) return op;
//            }
//        }
//        return op;
//    }

    // 贪心
    public int minimumOperations(int[] nums) {
        boolean[] flag = new boolean[101];
        for (int i = nums.length - 1; i >= 0; i--) {
            if (flag[nums[i]]) return i / 3 + 1; // 如果出现重复的，就必需要操作到i
            flag[nums[i]] = true;
        }
        return 0;
    }
}
